#Author：雨霁夜茶
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
import time
import random
import LoadAllData,threading

import numpy as np
lock = threading.RLock()
okex_dic={}
# ({'btc': {'key': 'btc', 'usdt': 6316.9969, 'btc': 1, 'precent': 0}, 'ltc': {'key': 'ltc', 'usdt': 49.1898, 'btc': 0.00778038, 'precent': 0}, 'eth': {'key': 'eth', 'usdt': 196.2351, 'btc': 0.03107085, 'precent': 0}, 'okb': {'key': 'okb', 'usdt': 1.2007, 'btc': 0.00019018, 'precent': 0}, 'etc': {'key': 'etc', 'usdt': 8.9877, 'btc': 0.00142345, 'precent': 0}, 'bch': {'key': 'bch', 'usdt': 418.4044, 'btc': 0.06614824, 'precent': 0}, 'eos': {'key': 'eos', 'usdt': 5.1394, 'btc': 0.00081372, 'precent': 0}, 'xrp': {'key': 'xrp', 'usdt': 0.4447, 'btc': 7.045e-05, 'precent': 0}, '1st': {'key': '1st', 'usdt': 0.0747, 'btc': 0, 'precent': 0}, 'aac': {'key': 'aac', 'usdt': 0.0083, 'btc': 1.31e-06, 'precent': 0}, 'abt': {'key': 'abt', 'usdt': 0.1819, 'btc': 2.858e-05, 'precent': 0}, 'ace': {'key': 'ace', 'usdt': 0.0512, 'btc': 8.07e-06, 'precent': 0}, 'act': {'key': 'act', 'usdt': 0.0274, 'btc': 4.32e-06, 'precent': 0}, 'ada': {'key': 'ada', 'usdt': 0.0691, 'btc': 1.096e-05, 'precent': 0}, 'ae': {'key': 'ae', 'usdt': 1.1342, 'btc': 0.00017968, 'precent': 0}, 'aidoc': {'key': 'aidoc', 'usdt': 0.0101, 'btc': 0, 'precent': 0}, 'amm': {'key': 'amm', 'usdt': 0.0243, 'btc': 0, 'precent': 0}, 'ark': {'key': 'ark', 'usdt': 0.8033, 'btc': 0.00012684, 'precent': 0}, 'ast': {'key': 'ast', 'usdt': 0.1074, 'btc': 0, 'precent': 0}, 'bcd': {'key': 'bcd', 'usdt': 1.7005, 'btc': 0.00026752, 'precent': 0}, 'bec': {'key': 'bec', 'usdt': 0.0907, 'btc': 1.403e-05, 'precent': 0}, 'bkx': {'key': 'bkx', 'usdt': 0.0841, 'btc': 1.324e-05, 'precent': 0}, 'bnt': {'key': 'bnt', 'usdt': 1.2901, 'btc': 0.00020564, 'precent': 0}, 'btg': {'key': 'btg', 'usdt': 26.2662, 'btc': 0.00415527, 'precent': 0}, 'btm': {'key': 'btm', 'usdt': 0.1907, 'btc': 3.022e-05, 'precent': 0}, 'cag': {'key': 'cag', 'usdt': 0.1101, 'btc': 0, 'precent': 0}, 'cai': {'key': 'cai', 'usdt': 0.0002, 'btc': 3.27e-08, 'precent': 0}, 'can': {'key': 'can', 'usdt': 0.0031, 'btc': 0, 'precent': 0}, 'chat': {'key': 'chat', 'usdt': 0.011, 'btc': 1.73e-06, 'precent': 0}, 'cic': {'key': 'cic', 'usdt': 0.0009, 'btc': 1.5e-07, 'precent': 0}, 'cmt': {'key': 'cmt', 'usdt': 0.0869, 'btc': 1.384e-05, 'precent': 0}, 'ctxc': {'key': 'ctxc', 'usdt': 0.2831, 'btc': 4.45e-05, 'precent': 0}, 'cvc': {'key': 'cvc', 'usdt': 0.1353, 'btc': 2.143e-05, 'precent': 0}, 'cvt': {'key': 'cvt', 'usdt': 0.0171, 'btc': 2.8e-06, 'precent': 0}, 'dadi': {'key': 'dadi', 'usdt': 0.0804, 'btc': 1.271e-05, 'precent': 0}, 'dash': {'key': 'dash', 'usdt': 153.097, 'btc': 0.02426204, 'precent': 0}, 'dat': {'key': 'dat', 'usdt': 0.0034, 'btc': 5.5e-07, 'precent': 0}, 'dcr': {'key': 'dcr', 'usdt': 40.1424, 'btc': 0.00630143, 'precent': 0}, 'dent': {'key': 'dent', 'usdt': 0.0027, 'btc': 4e-07, 'precent': 0}, 'dgb': {'key': 'dgb', 'usdt': 0.0205, 'btc': 3.24e-06, 'precent': 0}, 'dgd': {'key': 'dgd', 'usdt': 39.7221, 'btc': 0.00618419, 'precent': 0}, 'dna': {'key': 'dna', 'usdt': 0.044, 'btc': 0, 'precent': 0}, 'dnt': {'key': 'dnt', 'usdt': 0.031, 'btc': 0, 'precent': 0}, 'dpy': {'key': 'dpy', 'usdt': 0.2111, 'btc': 3.25e-05, 'precent': 0}, 'edo': {'key': 'edo', 'usdt': 1.1748, 'btc': 0.00018147, 'precent': 0}, 'egt': {'key': 'egt', 'usdt': 0.0012, 'btc': 1.9e-07, 'precent': 0}, 'elf': {'key': 'elf', 'usdt': 0.31, 'btc': 4.906e-05, 'precent': 0}, 'eng': {'key': 'eng', 'usdt': 0.595, 'btc': 9.412e-05, 'precent': 0}, 'enj': {'key': 'enj', 'usdt': 0.0507, 'btc': 7.66e-06, 'precent': 0}, 'evx': {'key': 'evx', 'usdt': 0.5516, 'btc': 0, 'precent': 0}, 'fair': {'key': 'fair', 'usdt': 0.0048, 'btc': 0, 'precent': 0}, 'fun': {'key': 'fun', 'usdt': 0.0139, 'btc': 2.21e-06, 'precent': 0}, 'gas': {'key': 'gas', 'usdt': 4.9252, 'btc': 0.0007755, 'precent': 0}, 'gnt': {'key': 'gnt', 'usdt': 0.1681, 'btc': 2.669e-05, 'precent': 0}, 'gnx': {'key': 'gnx', 'usdt': 0.045, 'btc': 7.13e-06, 'precent': 0}, 'gsc': {'key': 'gsc', 'usdt': 0.0121, 'btc': 0, 'precent': 0}, 'gto': {'key': 'gto', 'usdt': 0.0646, 'btc': 1.025e-05, 'precent': 0}, 'gusd': {'key': 'gusd', 'usdt': 1.01, 'btc': 0.00015999, 'precent': 0}, 'hmc': {'key': 'hmc', 'usdt': 0.0137, 'btc': 2.16e-06, 'precent': 0}, 'hot': {'key': 'hot', 'usdt': 0.0091, 'btc': 1.45e-06, 'precent': 0}, 'hpb': {'key': 'hpb', 'usdt': 0.6894, 'btc': 0.00010865, 'precent': 0}, 'hsr': {'key': 'hsr', 'usdt': 1.7992, 'btc': 0.00027983, 'precent': 0}, 'hyc': {'key': 'hyc', 'usdt': 0.0192, 'btc': 3.04e-06, 'precent': 0}, 'icn': {'key': 'icn', 'usdt': 0.3619, 'btc': 0, 'precent': 0}, 'icx': {'key': 'icx', 'usdt': 0.6181, 'btc': 9.764e-05, 'precent': 0}, 'ins': {'key': 'ins', 'usdt': 0.4408, 'btc': 6.888e-05, 'precent': 0}, 'insur': {'key': 'insur', 'usdt': 0.0004, 'btc': 6.31e-08, 'precent': 0}, 'int': {'key': 'int', 'usdt': 0.0407, 'btc': 6.46e-06, 'precent': 0}, 'iost': {'key': 'iost', 'usdt': 0.0122, 'btc': 1.93e-06, 'precent': 0}, 'iota': {'key': 'iota', 'usdt': 0.4493, 'btc': 7.142e-05, 'precent': 0}, 'ipc': {'key': 'ipc', 'usdt': 0.1651, 'btc': 0, 'precent': 0}, 'itc': {'key': 'itc', 'usdt': 0.2121, 'btc': 3.348e-05, 'precent': 0}, 'kan': {'key': 'kan', 'usdt': 0.0036, 'btc': 5.7e-07, 'precent': 0}, 'kcash': {'key': 'kcash', 'usdt': 0.0146, 'btc': 2.3e-06, 'precent': 0}, 'key': {'key': 'key', 'usdt': 0.0075, 'btc': 1.18e-06, 'precent': 0}, 'knc': {'key': 'knc', 'usdt': 0.4233, 'btc': 6.704e-05, 'precent': 0}, 'lba': {'key': 'lba', 'usdt': 0.0563, 'btc': 8.94e-06, 'precent': 0}, 'lend': {'key': 'lend', 'usdt': 0.0212, 'btc': 3.35e-06, 'precent': 0}, 'let': {'key': 'let', 'usdt': 0.0091, 'btc': 1.44e-06, 'precent': 0}, 'lev': {'key': 'lev', 'usdt': 0.0264, 'btc': 4.08e-06, 'precent': 0}, 'light': {'key': 'light', 'usdt': 0.0001, 'btc': 2e-08, 'precent': 0}, 'link': {'key': 'link', 'usdt': 0.45, 'btc': 7.25e-05, 'precent': 0}, 'lrc': {'key': 'lrc', 'usdt': 0.1073, 'btc': 1.701e-05, 'precent': 0}, 'lsk': {'key': 'lsk', 'usdt': 3.1986, 'btc': 0.00046232, 'precent': 0}, 'mag': {'key': 'mag', 'usdt': 0.0015, 'btc': 0, 'precent': 0}, 'mana': {'key': 'mana', 'usdt': 0.0733, 'btc': 1.167e-05, 'precent': 0}, 'mco': {'key': 'mco', 'usdt': 4.3242, 'btc': 0.00068424, 'precent': 0}, 'mda': {'key': 'mda', 'usdt': 1.2381, 'btc': 0.00020824, 'precent': 0}, 'mdt': {'key': 'mdt', 'usdt': 0.0066, 'btc': 1.04e-06, 'precent': 0}, 'mith': {'key': 'mith', 'usdt': 0.2573, 'btc': 4.077e-05, 'precent': 0}, 'mkr': {'key': 'mkr', 'usdt': 613.6363, 'btc': 0.09686603, 'precent': 0}, 'mof': {'key': 'mof', 'usdt': 0.1104, 'btc': 1.747e-05, 'precent': 0}, 'mot': {'key': 'mot', 'usdt': 0.1166, 'btc': 0, 'precent': 0}, 'mvp': {'key': 'mvp', 'usdt': 0.001, 'btc': 1.7e-07, 'precent': 0}, 'nano': {'key': 'nano', 'usdt': 2.0047, 'btc': 0.00031618, 'precent': 0}, 'nas': {'key': 'nas', 'usdt': 1.4605, 'btc': 0.00023116, 'precent': 0}, 'neo': {'key': 'neo', 'usdt': 15.0553, 'btc': 0.002387, 'precent': 0}, 'nuls': {'key': 'nuls', 'usdt': 1.0958, 'btc': 0.00016655, 'precent': 0}, 'oax': {'key': 'oax', 'usdt': 0.2645, 'btc': 0, 'precent': 0}, 'of': {'key': 'of', 'usdt': 0.0007, 'btc': 1.049e-07, 'precent': 0}, 'ok06ett': {'key': 'ok06ett', 'usdt': 0.55, 'btc': 0, 'precent': 0}, 'omg': {'key': 'omg', 'usdt': 3.1729, 'btc': 0.00050347, 'precent': 0}, 'ont': {'key': 'ont', 'usdt': 1.6187, 'btc': 0.00025649, 'precent': 0}, 'ors': {'key': 'ors', 'usdt': 0.0146, 'btc': 2.35e-06, 'precent': 0}, 'ost': {'key': 'ost', 'usdt': 0.0528, 'btc': 8.4e-06, 'precent': 0}, 'pax': {'key': 'pax', 'usdt': 1.01, 'btc': 0.00015992, 'precent': 0}, 'pay': {'key': 'pay', 'usdt': 0.5863, 'btc': 9.322e-05, 'precent': 0}, 'poe': {'key': 'poe', 'usdt': 0.0129, 'btc': 2.04e-06, 'precent': 0}, 'ppt': {'key': 'ppt', 'usdt': 3.4996, 'btc': 0.00055289, 'precent': 0}, 'pra': {'key': 'pra', 'usdt': 0.0505, 'btc': 0, 'precent': 0}, 'pst': {'key': 'pst', 'usdt': 0.22, 'btc': 3.392e-05, 'precent': 0}, 'qtum': {'key': 'qtum', 'usdt': 3.7612, 'btc': 0.00059427, 'precent': 0}, 'qun': {'key': 'qun', 'usdt': 0.0075, 'btc': 1.18e-06, 'precent': 0}, 'qvt': {'key': 'qvt', 'usdt': 0.0115, 'btc': 0, 'precent': 0}, 'r': {'key': 'r', 'usdt': 0.1896, 'btc': 3.028e-05, 'precent': 0}, 'rcn': {'key': 'rcn', 'usdt': 0.031, 'btc': 4.98e-06, 'precent': 0}, 'rdn': {'key': 'rdn', 'usdt': 0.5791, 'btc': 8.671e-05, 'precent': 0}, 'ren': {'key': 'ren', 'usdt': 0.0377, 'btc': 5.98e-06, 'precent': 0}, 'req': {'key': 'req', 'usdt': 0.052, 'btc': 0, 'precent': 0}, 'rfr': {'key': 'rfr', 'usdt': 0.0052, 'btc': 8.2e-07, 'precent': 0}, 'rnt': {'key': 'rnt', 'usdt': 0.0715, 'btc': 1.124e-05, 'precent': 0}, 'salt': {'key': 'salt', 'usdt': 0.6564, 'btc': 0.00010571, 'precent': 0}, 'san': {'key': 'san', 'usdt': 0.4421, 'btc': 0, 'precent': 0}, 'sc': {'key': 'sc', 'usdt': 0.0064, 'btc': 1.01e-06, 'precent': 0}, 'show': {'key': 'show', 'usdt': 0.0015, 'btc': 2.4e-07, 'precent': 0}, 'snc': {'key': 'snc', 'usdt': 0.0325, 'btc': 4.99e-06, 'precent': 0}, 'sngls': {'key': 'sngls', 'usdt': 0.0301, 'btc': 4.78e-06, 'precent': 0}, 'snt': {'key': 'snt', 'usdt': 0.0373, 'btc': 5.9e-06, 'precent': 0}, 'soc': {'key': 'soc', 'usdt': 0.0116, 'btc': 1.82e-06, 'precent': 0}, 'spf': {'key': 'spf', 'usdt': 0.0134, 'btc': 2.15e-06, 'precent': 0}, 'ssc': {'key': 'ssc', 'usdt': 0.0066, 'btc': 1.05e-06, 'precent': 0}, 'stc': {'key': 'stc', 'usdt': 0.004, 'btc': 6.1e-07, 'precent': 0}, 'storj': {'key': 'storj', 'usdt': 0.3067, 'btc': 4.847e-05, 'precent': 0}, 'swftc': {'key': 'swftc', 'usdt': 0.0022, 'btc': 3.5e-07, 'precent': 0}, 'tct': {'key': 'tct', 'usdt': 0.0284, 'btc': 4.51e-06, 'precent': 0}, 'theta': {'key': 'theta', 'usdt': 0.0881, 'btc': 1.41e-05, 'precent': 0}, 'tnb': {'key': 'tnb', 'usdt': 0.0108, 'btc': 1.71e-06, 'precent': 0}, 'topc': {'key': 'topc', 'usdt': 0.0109, 'btc': 0, 'precent': 0}, 'tra': {'key': 'tra', 'usdt': 0.0003, 'btc': 0, 'precent': 0}, 'trio': {'key': 'trio', 'usdt': 0.003, 'btc': 4.8e-07, 'precent': 0}, 'true': {'key': 'true', 'usdt': 0.4126, 'btc': 6.549e-05, 'precent': 0}, 'trx': {'key': 'trx', 'usdt': 0.0219, 'btc': 3.46e-06, 'precent': 0}, 'tusd': {'key': 'tusd', 'usdt': 1.0092, 'btc': 0.00015982, 'precent': 0}, 'ubtc': {'key': 'ubtc', 'usdt': 2.5, 'btc': 2.5, 'precent': 0}, 'uct': {'key': 'uct', 'usdt': 0.0155, 'btc': 0, 'precent': 0}, 'ugc': {'key': 'ugc', 'usdt': 0.0064, 'btc': 1.01e-06, 'precent': 0}, 'usdc': {'key': 'usdc', 'usdt': 1.0076, 'btc': 0.00015937, 'precent': 0}, 'utk': {'key': 'utk', 'usdt': 0.0314, 'btc': 0, 'precent': 0}, 'vib': {'key': 'vib', 'usdt': 0.0604, 'btc': 9.55e-06, 'precent': 0}, 'viu': {'key': 'viu', 'usdt': 0.0003, 'btc': 0, 'precent': 0}, 'waves': {'key': 'waves', 'usdt': 1.7962, 'btc': 0.00028078, 'precent': 0}, 'win': {'key': 'win', 'usdt': 0.0004, 'btc': 7e-08, 'precent': 0}, 'wrc': {'key': 'wrc', 'usdt': 0.0055, 'btc': 0, 'precent': 0}, 'wtc': {'key': 'wtc', 'usdt': 3.2764, 'btc': 0.00051904, 'precent': 0}, 'xas': {'key': 'xas', 'usdt': 0.1468, 'btc': 2.151e-05, 'precent': 0}, 'xem': {'key': 'xem', 'usdt': 0.0892, 'btc': 1.412e-05, 'precent': 0}, 'xlm': {'key': 'xlm', 'usdt': 0.2218, 'btc': 3.512e-05, 'precent': 0}, 'xmr': {'key': 'xmr', 'usdt': 101.3013, 'btc': 0.01602245, 'precent': 0}, 'xuc': {'key': 'xuc', 'usdt': 3.9759, 'btc': 0, 'precent': 0}, 'yee': {'key': 'yee', 'usdt': 0.0042, 'btc': 6.7e-07, 'precent': 0}, 'you': {'key': 'you', 'usdt': 0.0061, 'btc': 9.6e-07, 'precent': 0}, 'yoyo': {'key': 'yoyo', 'usdt': 0.0365, 'btc': 5.7e-06, 'precent': 0}, 'zec': {'key': 'zec', 'usdt': 114.5305, 'btc': 0.01814806, 'precent': 0}, 'zen': {'key': 'zen', 'usdt': 13.4998, 'btc': 0.00214933, 'precent': 0}, 'zil': {'key': 'zil', 'usdt': 0.034, 'btc': 5.38e-06, 'precent': 0}, 'zip': {'key': 'zip', 'usdt': 0.0012, 'btc': 1.95e-07, 'precent': 0}, 'zrx': {'key': 'zrx', 'usdt': 0.7673, 'btc': 0.00012167, 'precent': 0}, 'abl': {'key': 'abl', 'usdt': 0.0245, 'btc': 3.88e-06, 'precent': 0}, 'ardr': {'key': 'ardr', 'usdt': 0.102, 'btc': 1.614e-05, 'precent': 0}, 'avt': {'key': 'avt', 'usdt': 0.3631, 'btc': 5.748e-05, 'precent': 0}, 'bcx': {'key': 'bcx', 'usdt': 0.0008, 'btc': 1.2e-07, 'precent': 0}, 'cbt': {'key': 'cbt', 'usdt': 0.0099, 'btc': 1.56e-06, 'precent': 0}, 'cit': {'key': 'cit', 'usdt': 0.0139, 'btc': 2.2e-06, 'precent': 0}, 'hit': {'key': 'hit', 'usdt': 0.0003, 'btc': 4.74e-08, 'precent': 0}, 'mtl': {'key': 'mtl', 'usdt': 0.6571, 'btc': 0.00010402, 'precent': 0}, 'ngc': {'key': 'ngc', 'usdt': 0.2358, 'btc': 3.732e-05, 'precent': 0}, 'nxt': {'key': 'nxt', 'usdt': 0.0636, 'btc': 1.007e-05, 'precent': 0}, 'sbtc': {'key': 'sbtc', 'usdt': 3.4105, 'btc': 0.00053989, 'precent': 0}, 'sub': {'key': 'sub', 'usdt': 0.1114, 'btc': 1.764e-05, 'precent': 0}, 'vite': {'key': 'vite', 'usdt': 0.036, 'btc': 5.7e-06, 'precent': 0}, 'zco': {'key': 'zco', 'usdt': 0.0123, 'btc': 1.95e-06, 'precent': 0}},
#  {'qun', 'ost', 'ren', 'show', 'qvt', 'theta', 'bkx', 'nas', 'ont', 'okb', 'eth', 'egt', 'xlm', 'gnx', 'yoyo', 'kcash', 'nuls', 'edo', 'aac', 'hpb', 'mag', 'bch', 'gas', 'xmr', 'ada', 'pax', 'etc', 'soc', 'btc', 'ubtc', 'ins', 'utk', 'snt', 'spf', 'mda', 'gusd', 'ok06ett', 'icn', 'oax', 'dna', 'rnt', 'act', 'fun', 'zen', 'tct', 'sngls', 'storj', 'zip', 'qtum', 'rfr', 'poe', 'link', 'usdc', 'lrc', 'sbtc', 'sc', 'bec', 'mco', 'zil', 'req', 'eng', 'cmt', 'ark', 'uct', 'waves', 'ugc', 'eos', 'elf', 'swftc', 'btg', 'snc', 'ppt', 'zrx', 'zco', 'lba', 'dgd', 'wrc', 'vite', 'gsc', 'can', 'hsr', 'tnb', 'tra', 'hot', 'dpy', 'dgb', 'enj', 'itc', 'dent', 'cvt', 'abl', 'rcn', 'iota', 'san', 'cai', 'vib', 'evx', 'mkr', 'yee', 'hit', 'mvp', 'omg', 'you', 'trx', 'pst', 'xuc', 'abt', 'kan', 'ipc', 'hyc', 'btm', 'dadi', 'bnt', 'gnt', 'bcd', 'mof', 'hmc', 'fair', 'icx', 'knc', 'avt', 'dnt', 'mot', 'dat', 'ardr', '1st', 'lev', 'cvc', 'xem', 'ssc', 'int', 'light', 'neo', 'of', 'lsk', 'nano', 'nxt', 'ae', 'dash', 'topc', 'chat', 'ace', 'win', 'cag', 'stc', 'cbt', 'amm', 'pra', 'ctxc', 'let', 'xrp', 'lend', 'trio', 'viu', 'cit', 'insur', 'wtc', 'dcr', 'mana', 'bcx', 'ngc', 'ltc', 'cic', 'zec', 'rdn', 'salt', 'xas', 'aidoc', 'ast', 'true', 'pay', 'gto', 'mdt', 'ors', 'r', 'sub', 'mith', 'tusd', 'key', 'mtl', 'iost'})
web_name = ['Okex', 'Bittrex','Binance', 'Bitfinex','ZB', ]

my_all_keys = ['btc', 'eth', 'etc', 'bch', 'ltc', 'xrp', 'neo', 'qtum', 'dash', 'xem', 'xlm', 'salt', 'rfr', 'zen',
               'enj', 'dcr', 'dgb'    , 'storj', 'lrc', 'pax', 'rcn', 'tusd', 'sc', 'mtl', 'gto', 'lsk', 'pay', 'eng', 'ada', 'dnt', 'zec', 'ardr', 'snt',
               'mco'    , 'bkx', 'zrx', 'nxt', 'ngc', 'cvc', 'mana', 'ark', 'xmr', 'gnt', 'bnt', 'waves', 'omg', 'trx', 'vib', 'mith',
               'xuc','fun', 'topc', 'edo', 'xwc', 'eos', 'chat', 'true', 'doge', 'btm', 'ae', 'qun', 'kan', 'sub', '1st', 'knc',
                'edo','fun','eos','ae','sub','knc','icx','xvg' ,'sys','oax','ins','via','mft','rdn','lun','adx','poe','grs','steem',
               'nano','nav','nxs','ost','rlc','loom','bat','powr','nas','mda','evx','cloak','go','key','yoyo','itc','iota','dent'
               ,'tnb','req','zil','sngls','dgd','wtc','iost','pivx','bcd','bcpt','link','storm','kmd','nuls','strat','btg','wings',
               'rep','ont','ast','poly','lend','cmt','gas','xzc','rvn','elf','ppt','npxs','int','utk','wpr','wax','dat','avt','vet',
               'san','bft','aid','dta','vee','ant','mln','cnd','cbt','hot','mkr','agi','']
def loadalldata():
    LoadAllData.start_load_data()

class MyTable(QTableWidget):
    def __init__(self, parent=None):
        super(MyTable, self).__init__(parent)


    def showwindow(self,keys):
        self.setWindowTitle("市场行情")  # 设置表格名称
        self.setWindowIcon(QIcon("ok.png"))  # 设置图标（图片要存在）
        self.resize(1200, 600)  # 设置表格尺寸（整体大小）

        # row_name = [
        #     'Okex',
        #     'Bittrex',
        #     'ZB',
        # ]

        self.setColumnCount(len(web_name))  # 设置列数
        self.setRowCount(len(keys))  # 设置行数
        # self.setColumnWidth(0, 180)  # 设置列宽(第几列， 宽度)
        # # self.setRowHeight(0, 20)  # 设置行高(第几行， 行高)
        # self.setColumnWidth(1, 220)  # 设置列宽(第几列， 宽度)
        # self.setColumnWidth(2, 220)  # 设置列宽(第几列， 宽度)
        for i,v in enumerate(web_name):
            if i==0:
                self.setColumnWidth(0, 180)
            else:
                self.setColumnWidth(i, 220)

        # row_name=list(okex_dic[1])
        # print("-->",len(row_name))
        column_name = [
        ]
        self.setHorizontalHeaderLabels(web_name)  # 设置列名称
        self.setVerticalHeaderLabels(keys)  # 设置行名称


    def update_item_data(self, data ,keys):
        while True:
            time.sleep(5)
            print('刷新数据....')
            lock.acquire()
            try:
                set_keys=list(set(keys))
                # for i in set_keys:
                #     print(i.upper())

                for i in set_keys:
                    if i not in my_all_keys:
                        my_all_keys.append(i)
                self.showwindow(my_all_keys)


                for i,key in enumerate(my_all_keys):
                    for j,web in enumerate(web_name):
                        itemdata_1 = data[web].get(key)
                        if itemdata_1 is not None:
                            strs_btc='%.8f'%(itemdata_1['btc'])
                            # pre=itemdata_1['precent']*100
                            pre=round(itemdata_1['precent']*100, 2)
                            value_usdt=round(itemdata_1['usdt'],4)
                            showstr=''
                            if pre==0:
                                showstr = "[$" + str(value_usdt) + "][B" + strs_btc + ']'
                            else:
                                showstr="[$"+str(value_usdt)+"][B"+strs_btc+']'+'['+str(pre)+'%]'
                            # showstr = "[$" + str(itemdata_1['usdt']) + "][B" + strs_btc + ']' + '[' + str(pre) + '%]'
                            self.newItem= QTableWidgetItem(str(showstr))
                            #

                            self.setItem(i, j,self.newItem)
                            if itemdata_1['precent']<-0.02:
                                self.newItem.setBackground(QColor('Lime'))
                            if itemdata_1['precent']>0.02:
                                self.newItem.setBackground(QColor('Red'))
                            # self.newItem.setBackgroundColor(Qt.green)
                            # self.ConnectRos_Icolabel.setBackground(QColor('Gray'))

                        else:
                            pass
            except:
                print('update_item_data Error')
            # while True:
            #     time.sleep(1)
            #     print('........')
            QApplication.processEvents()
            lock.release()


if __name__ == '__main__':
    loadalldata()
    # time.sleep(6)
    # print(LoadAllData.all_datas)
    # 实例化表格
    app = QApplication(sys.argv)
    myTable = MyTable()

    # myTable.update_item_data(LoadAllData.all_datas, LoadAllData.all_keys_list)
    t=threading.Thread(target=myTable.update_item_data, args=(LoadAllData.all_datas,LoadAllData.all_keys_list))
    t.start()
    # 启动更新线程
    # update_data_thread = UpdateData()
    # update_data_thread.update_date.connect(myTable.update_item_data)  # 链接信号
    # update_data_thread.start()
    print('-----------------------------------------------------------')
    # 显示在屏幕中央
    desktop = QApplication.desktop()  # 获取坐标
    x = (desktop.width() - myTable.width()) // 2
    y = (desktop.height() - myTable.height()) // 2
    myTable.move(x, y)  # 移动

    # 显示表格

    myTable.show()


    app.exit(app.exec_())


